package InputYOrdenatPeticiones;

import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;

import Utilitats .*;

public class ArrayPeticiones {
             
        public static List<Peticion> generaArrayPeticiones(String rutaNombreArchivoPeticiones) throws Exception{
        	List <String> arrayStringPeticions = arrayStringsPeticions (rutaNombreArchivoPeticiones);
        	List<Peticion> arrayPeticiones = new ArrayList<Peticion>();
        	
        	for (String cadaStringPeticio:arrayStringPeticions){
        		
        		String[] dadesPeticio = cuarteigStringPeticions (cadaStringPeticio);
        		
        		Peticion peticion = mutacioDadesConstruccioPeticio (dadesPeticio);
        		
        		arrayPeticiones.add(peticion);
             }
			
        	return arrayPeticiones;
        }
        
                
        public static List<String> arrayStringsPeticions(String rutaNomFitxer) throws Exception {
			List<String> fitxer = new ArrayList<String>();
			fitxer = LlegirFitxer.llegirFitxer(rutaNomFitxer);
			return fitxer;
		}
             
        public static String[] cuarteigStringPeticions (String peticioString ){
        	String[] datosPeticion = peticioString.split(" ");
            return datosPeticion;
        }
                
        public static Peticion mutacioDadesConstruccioPeticio (String[] datosPeticion){
        	
        	GregorianCalendar inici = convertDate (datosPeticion[2]);
        	GregorianCalendar cloenda = convertDate (datosPeticion[3]);
        	Peticion peticion = new Peticion(datosPeticion[0],datosPeticion[1],inici,cloenda,datosPeticion[4], datosPeticion[5]);
        	return peticion;
        } 
                
        public static GregorianCalendar convertDate(String date) {
        	int day, month,year;
        	day = Integer.parseInt(date.substring(0,2));
        	month= Integer.parseInt(date.substring(3,5));
        	year = Integer.parseInt(date.substring(6,10));
        	return new GregorianCalendar(year, month-1, day);
        } 
}

